In procedural programming languages such as LISP, Ruby, and Python, variables and function definition information is loaded at program runtime, and the program is executed on the basis of the loaded function definitions and variable values. Software that interprets and executes such a procedural programming language (a sequential execution data processing module) loads an application program stated in a procedural programming language every time the software is activated, and thereafter processes input data and outputs a processing result according to the loaded application program.
A characteristic of software that interprets and executes a procedural programming language is that if a defined variable name is input, the content of that variable may be read out. Likewise, if a function that reads out a defined function is input, that function code may be output.
In the past, computer system architecture involved breaking down the requested specifications into function modules for individual tasks, defining the module control instructions and communication means from the start, and using a compiler to realize the construction. In function module development, the behavior of a module is defined from the start using programming code in the function module or by using a predefined code, which undergoes a sequence of compiling, linking, and debugging before being incorporated into the system.